# 幸运数字6：输入任意数字，如数字8，生成nums列表，元素值为1~8，
# 从中选取幸运数字(能够被6整除)移动到新列表lucky，打印nums与lucky。
import random

str1 = int(input('请输入幸运数字:'))
nums = []
lucky = []
for i in range(0, str1):
    nums.append(i + 1)
    if (i + 1) % 6 == 0:
        lucky.append(i + 1)
print(f'nums为{nums},lucky为{lucky}')
# 列表嵌套：有3个教室[[],[],[]]，8名讲师['A','B','C','D','E'
# ,'F','G','H']，将8名讲师随机均匀分配到3个教室中.


# 1 将老师摘出来  2\分配教师

school = [[], [], []]
teacher = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H']
for i in range(0, 8):
    # 将选中的老师 删除
    random_teacher_index = random.randrange(0, len(teacher))
    remove_teacher = teacher.pop(random_teacher_index)

    # 分配教室
    random_clazz = (i + 1) % 3
    school[random_clazz].append(remove_teacher)

print(school)

# 已知列表: list1 = [12,2,34,13,55,99,75] 求出元素中的最大值.
# 除了max()以外.尝试自己实现循环遍历对比出最大值.


list1 = [12, 2, 34, 13, 55, 99, 75]
max_number = list1[0]
for i in list1:
    if i > max_number:
        max_number = i
print(max_number)

# 已知字典: stu_dict = {"name":"tom","age":19,"height":1.78}
# 要求:
# 	1.删除年龄
#     2.添加性别为男
#     3.修改身高为1.89
#     4.打印身高
#     5.遍历输出字典中所有的键和值.

stu_dict = {"name": "tom", "age": 19, "height": 1.78}

del stu_dict["age"]  # todo 需要注意
print(stu_dict)

stu_dict['sex'] = '男'
print(stu_dict)
stu_dict["height"] = 1.89
print(stu_dict)

print(stu_dict['height'])

for (k, v) in stu_dict.items():  # todo 需要注意
    print(k, v)

#
# 已有列表name_list1 = ['张三','李四','王五','赵六'] 和列表 name_list2=['张三','李四']
# 求出两个列表中不一样的元素.然后存放在新列表中并打印新列表内容.
# 提示可以使用 in 和 not in 来判断元素是否在另一个容器中.
name_list1 = ['张三', '李四', '王五', '赵六']
name_list2 = ['张三', '李四']
common_list = []
all_different_list = []

all_list = []
all_list.extend(name_list1)
all_list.extend(name_list2)
for i in name_list2:
    if i in name_list1:
        # 获得公共元素
        common_list.append(i)
for i in all_list:
    # 如果元素不是公共元素
    if i not in common_list:
        all_different_list.append(i)
print(all_different_list)

# 已有列表nums = [10, 20, 30, 40, 50], 将每一个数字在原来的基础上加10再存储nums中，打印列表nums.
nums = [10, 20, 30, 40, 50]
new_nums = []
for i in nums:
    new_nums.append(i + 10)
print(new_nums)

# 将下列两个列表合并，将合并后的列表去重，之后降序并输出
list1 = [11, 4, 45, 34, 51, 90]
list2 = [4, 16, 23, 51, 0]

list1.extend(list2)

new_list = list(set(list1))
new_list.sort(reverse=True)
print(new_list)

# 有一个列表，判断列表中的每一个元素是否以s或e结尾，如果是，则将其放入一个新的列表中，最后输出这个新的列表
list1 = ["red", "apples", "orange", "pink", "bananas", "blue", "black", "white"]
new_list = []

for i in list1:
    if i.endswith('s') or i.endswith('e'):
        new_list.append(i)
print(new_list)

# 2.练习对列表的增删改查统计的操作，具体操作如下：
# 1)声明一个列表，包含的数据有：["hello", "python", "itcast", "hello"]
list1 = ["hello", "python", "itcast", "hello"]
# 2)在列表中追加一个数据："heima"
list1.append("heima")
# 3)删除列表中的第二个数据
list1.pop(1)
# 4)删除列表中的数据："heima"
list1.remove("heima")
# 5)将列表中的第二个数据改为："chuanzhi"
list[1]="chuanzhi"
# 6)在控制台打印列表中的第一个元素
print(list1[0])
# 7)统计列表中"hello"字符串出现的次数
print(list1.count("hello"))
# 8)在控制台打印列表的长度
print(len(list1))
# 9)循环遍历列表中的所有数据
for i in list1:
    print(i)
